/*
 * turn_signal.h
 *
 *  Created on: 15-03-2013
 *      Author: MCzepczyński
 */

#ifndef TURN_SIGNAL_H_
#define TURN_SIGNAL_H_

/******************************************************************************************
 *	Makrodefinicje															 			 *
 *****************************************************************************************/
#define TURN_LEFT_DDR			DDRD
#define TURN_LEFT_PORT			PORTD
#define TURN_LEFT_PIN			PIND
#define TURN_LEFT				(1 << PD2)

#define TURN_RIGHT_DDR			DDRD
#define TURN_RIGHT_PORT			PORTD
#define TURN_RIGHT_PIN			PIND
#define TURN_RIGHT				(1 << PD3)

#define TURN_LEFT_RELAY_DDR		DDRD
#define TURN_LEFT_RELAY_PORT	PORTD
#define TURN_LEFT_RELAY			(1 << PD4)

#define TURN_RIGHT_RELAY_DDR	DDRD
#define TURN_RIGHT_RELAY_PORT	PORTD
#define TURN_RIGHT_RELAY		(1 << PD5)

#define TURN_LEFT_RELAY_ON		TURN_LEFT_RELAY_PORT &= ~TURN_LEFT_RELAY
#define TURN_LEFT_RELAY_OFF		TURN_LEFT_RELAY_PORT |= (TURN_LEFT_RELAY)

#define TURN_RIGHT_RELAY_ON		TURN_RIGHT_RELAY_PORT &= ~TURN_RIGHT_RELAY
#define TURN_RIGHT_RELAY_OFF	TURN_RIGHT_RELAY_PORT |= (TURN_RIGHT_RELAY)

#define TURN_RELAY_IMP_DELAY	20		// 200ms  (czas impulsu)
#define TURN_RELAY_DELAY		380		// 3800ms (4 mrugnięcia)

/******************************************************************************************
 *	Deklaracje dołączanych plików nagłówkowych i bibliotek								 *
 *****************************************************************************************/
#include <avr/io.h>

#include "utils.h"

/******************************************************************************************
 *	Deklaracje funkcji								 									 *
 *****************************************************************************************/
uint8_t check_turn_signals(void);
void turn_signals(void);
void turn_signals_default(void);

#endif /* TURN_SIGNAL_H_ */
